#ifndef _GUARD_CLIENT_
#define _GUARD_CLIENT_
#include "display.h"
#include "Table.h"
#include <signal.h>
#include <ncurses.h>
#include <cstdlib>
#include <sstream>
#include <vector>
#include "Slot.h"
#include <iostream>
#include <stdio.h>
#include <time.h>



using namespace std;
class Client {
  public:
    Client(Table* table);
    void initializeDisplay();
    void drawTable(Table* table);
    void updateClient(Table* table);
    Slot checkHitBoxes();
    bool between(int a, int b, int c);//support function for checkHitBoxes()
    void setMove(Slot clickedSlot);
  private:
    display gameDisplay;
    int mouseX;
    int mouseY;
    int key;
    Table* table;
    
    /*Each player contains the following slots
    1. Hand (7 slots for human, 1 for non human)
    2. Deck
    3. Active Cards
    */
    Slot emptySlot;
    Slot p1Cards[8];
    Slot p2Cards[2];
    Slot p3Cards[2];
    Slot p4Cards[2];
    Slot pillage;
    Slot spoils;
    Slot actives[3];

    stringstream messageString;
    int clickX;
    int clickY;
    int cardX;
    int cardY;
    int suit;
    int number;
    int dragX;
    int dragY;
//window being the box that we're playing in
    int windowMaxX;
    int windowMaxY;
    int windowXOffset;
    int windowYOffset;
  };

#endif
